package com.culture.bootdemo.算法.meituan;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
 * @author: wen
 * @date 2020/10/26
 * 数组求交集 将数组放到map中，遍历第二个数组，存在则取出
 */
public class 数组求交集 {
    public static void intersectionHashArray(int[] numsArray1, int[] numsArray2) {
        List<Integer> list = new ArrayList<>();

        HashMap<Integer, Integer> map = new HashMap(100000);
        System.out.println("map:" + map);
        for (int i : numsArray1) {
            if (map.containsKey(i)) {
                map.put(i, map.get(i) + 1);
            } else {
                map.put(i, 1);
            }
            System.out.println("i:" + i + ";" + map.get(i));
        }
        System.out.println(map);

        for (int j : numsArray2) {
            if (map.containsKey(j)) {
                list.add(j);
                map.put(j, map.get(j) - 1);
                if (map.get(j) == 0) {
                    map.remove(j);
                }
            }
        }
        System.out.println(list);
    }


    public static void main(String[] args) {
        intersectionHashArray(new int[]{1, 2, 3, 4, 4, 5}, new int[]{2, 5, 4, 4, 88});
    }
}
